package com.darwin.darwinImage.dar
{
	import flash.utils.ByteArray;

	/**
	 * Dar解码/编码类
	 * @author Roland
	 */
	public class Dar
	{
		private static var encoder:DarEncoder;
		private static var decoder:DarDecoder;
		
		public function Dar()
		{
			throw new Error("Dar为静态类，不允许实例化");
		}
		/**
		 * 将传入dar格式数组编码为*.dar文件二进制数据
		 * @param sourceArr *.dar源数据 结构 [{materialName:"",UP:displayObject,
		 * 								   MID:displayObject,DOWN:displayObject},{}]
		 * @return 
		 */		
		public static function encode(source:Array):ByteArray
		{
			if(encoder == null)
			{
				encoder = new DarEncoder();
			}
			return encoder.encode(source);
		}
		
		/**
		 *	将.dar的二进制数据解析成一个数组，其中含有数个DarBitmapData对象，各表示一段动画 
		 * @param bytes
		 * @return 
		 */
		public static function decode(bytes:ByteArray):Array
		{
			if(decoder == null)
			{
				decoder = new DarDecoder();
			}
			return decoder.decode(bytes);
		}
	}
}